<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>送机服务全面升级 免费享受快捷安检_易到用车</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>送机贵宾通道页面_易到用车</title>
<meta name="description" content="" />
<meta name="keywords" content="" />

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
<meta name="apple-itunes-app" content="app-id=427555239"/>

<link rel="icon" href="http://i1.yongche.name/favicon.ico?1435645200" mce_href="http://i1.yongche.name/favicon.ico?1435645200" type="image/x-icon">
<link rel="shortcut icon" href="http://i1.yongche.name/favicon.ico?1435645200" mce_href="http://i1.yongche.name/favicon.ico?1435645200" type="image/x-icon"> 

<script type="text/javascript">
var Do=function(){Do.actions.push([].slice.call(arguments));};Do.ready=function(){Do.actions.push([].slice.call(arguments));};Do.add=Do.define=function(name,opts){Do.mods[name]=opts;};Do.global=function(){Do.global.mods=Array.prototype.concat(Do.global.mods,[].slice.call(arguments));};Do.global.mods=[];Do.mods={};Do.actions=[];
</script>


<link rel="stylesheet" type="text/css" href="${basePath }/css/style.css" /> 
<link rel="stylesheet" type="text/css" href="http://i3.yongche.name/css/app/??common/reset.css,common/common.css,cms/cms.css?1435645200" />

<style type="text/css">
@charset "utf-8";
/* CSS Document */

/* ----------------------------------

*Main CSS file for 易到用车网
*(C) Comsenz Inc.
*http://http://www.yongche.com.
*$Id:style.css 2014-08-22 16:42:16.$
*Created & Modified by  LC & 刘超.
*QQ:270287104,TEL:13488874014.

----------------------------------*/

/*
	Name:			mod_reset
	Explain:        重定义浏览器默认样式
*/
* { word-wrap: break-word; }
body { background: #FFF; }
body,
input,
button,
select,
textarea { font: 14px/1.5 arial,"Microsoft Yahei","Hiragino Sans GB",sans-serif; color: #424e60; }
textarea { resize: none; }
body,
ul,
ol,
li,
dl,
dd,
p,
h1,
h2,
h3,
h4,
h5,
h6,
form,
fieldset,
.pr,
.pc { margin: 0; padding: 0; }
table { empty-cells: show; border-collapse: collapse; }
caption,
th { text-align: left; font-weight: 400; }
ul li,
.xl li { list-style: none; }
h1,
h2,
h3,
h4,
h5,
h6 { font-size: 1em; }
em,
cite { font-style: normal; }
a { color: #333; text-decoration: none; }
a:hover { color: #970002; text-decoration: underline; }
a img { border: none; }
label { cursor: pointer; }
fieldset,
img { border: 0; }
img { vertical-align: bottom; }
/*
	Name:			mod_float
	Explain:		.z/.y 浮动 left/right
*/
.z { float: left; }
.y { float: right; }
.y.li { width: 100px; height: 30px; }
/*
	Name:			mod_clearfix
	Explain:		Clearfix,避免因子元素浮动而导致的父元素高度缺失能问题
*/
.cl:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
.cl { zoom: 1; }
.clear { clear: both; height: 1px; margin-top: -1px; overflow: hidden; }
/*
	Name:			mod_center
	Explain:		定义页面居中问题
*/
.center { margin: 0 auto; }
/*
	Name:			mod_line
	Explain:		定义主题栏目间距
*/
.line { height: 20px; line-height: 20px; }
/* 文本属性：字号、颜色、粗细 */	

/*	 
	Name:			mod_text_size
	Explain:		文字字号，分为x个级别
*/
.xs0 { font-family: Tahoma, Helvetica, sans-serif; font-size: 0.83em; -webkit-text-size-adjust: none; }
.xs1 { font-size: 12px !important; }
.xs2 { font-size: 14px !important; }
.xs3 { font-size: 16px !important; }
.xs4 { font-size: 18px !important; }
.xs5 { font-size: 20px !important; }
.xs6 { font-size: 22px !important; }
.xs7 { font-size: 24px !important; }
.xs8 { font-size: 26px !important; }
.xs9 { font-size: 28px !important; }
.xs10 { font-size: 30px !important; }
.xs11 { font-size: 32px !important; }
.xs12 { font-size: 34px !important; }
.xs13 { font-size: 36px !important; }
/*
	Name:			mod_text_weight_level
	Explain:		文字字号，分为二个级别
*/
.xw0 { font-weight: 400; }
.xw1 { font-weight: 700; }
/*
	Name:			mod_padding
	Explain:		文字字号，分为五个级别
*/
.pb10 { padding-bottom: 10px; }
.pl10 { padding-left: 10px; }
.pr10 { padding-right: 10px; }
.pt10 { padding-top: 10px; }
.pq10 { padding: 10px; }
.pb30 { padding-bottom: 30px; }
.pl30 { padding-left: 30px; }
.pr30 { padding-right: 30px; }
.pt30 { padding-top: 30px; }
.pq30 { padding: 30px; }

.mb10 { margin-bottom: 10px; }
.ml10 { margin-left: 10px; }
.mr10 { margin-right: 10px; }
.mt10 { margin-top: 10px; }
.mq10 { margin: 10px; }
/*
	Name:			mod_color
	Explain:		常用颜色
*/
.c-red { color: red !important; }
.c-white { color: white !important; }
.c-blue { color: #2da8c9 !important; }
.c-black { color: black !important; }
.c-adabac { color: #adabac !important; }
.c-fff826 { color: #fff826 !important; }
.c-0067a3 { color: #0067a3 !important; }
.c-ed4136 { color:#ed4136;}
.c-515151 { color:#515151;}
.c-f5871a { color:#f5871a;}
/*
	Name:			mod_background-color
	Explain:		常用背景颜色
*/
.bg_dc { background-color: #dcdcdc; }
.bg_f18404 { background-color:#f18404;}
/*
	Name:			mod_border
	Explain:		边框样式，该模块仅作用于元素的下边框and全边框，分为虚线和实线两种，宽度均为 1px
*/
.bbda { border-bottom: 1px dashed #C4C4C4; }
.bbs { border-bottom: 1px solid #C4C4C4 !important; }
.bqda { border: 1px dashed #C4C4C4; }
.bqs { height: 100%; border: 1px solid #C4C4C4 !important; }
/* ------------------------------------------------------------------------ 页面布局 */
/* 通用容器，定义页面宽度 */ .wp { margin: 0 auto; width: 980px; }
#wp .wp { width: auto; }
.badyBg { margin: 0 auto; height: auto; background: url(http://i3.yongche.name/u/images/201404/2909522397.png?1435645200) repeat; }
#wrapper { margin: 0 auto; height: auto; }
/* 页面主区域 */
/* 主体 */#main { height: auto; }

/* 页脚 */
.footer { padding: 90px 0 60px; margin-top: 124px; height: auto; overflow: hidden; background: #333333; }
.footer .info { height: auto; overflow: hidden; width: 500px; *width: 450px;
}
.footer .info .logo { width: auto; height: 59px; }
.footer .info .logoa { width: 164px; height: 59px; background-position: 0 0; display: inline-block; }
.footer .info .tel { width: 180px; height: 59px; background-position: -205px 0; display: inline-block; }
.footer .info .txt { padding: 15px 0 20px; color: #FFF; line-height: 24px; }
.footer .believe { height: auto; overflow: hidden; }
.footer .believe a { float: left; margin-right: 20px; }
.footer .believe i { width: 108px; height: 40px; }
.footer .believe .icon_cnnic { background-position: 0 -130px; }
.footer .believe .icon_hd315 { background-position: -127px -130px; ; }
.footer .nav { color: #6b6b6b; }
.footer .nav .xl { float: left; padding: 0 25px; font-size: 14px; }
.footer .nav .xl a { color: #90929c; }
.footer .nav .xl h2 { color: #FFF; line-height: 40px; }
.footer .nav .xl li { color: #90929c; line-height: 30px; }
/* 背景 */
.max_banenr { height:685px !important; background:url(${basePath}/images/plane.png) top center no-repeat;}
.max_banenr .btn { margin:72px auto 0; width:189px; height:64px; line-height:64px; background-color:#ff940a; display:block;}
.max_banenr a:hover { text-decoration:none;}
.caret { border-color: #f6545e transparent transparent; border-style: solid dashed dashed; border-width: 9px; width: 0; height: 0 }
/* CIP贵宾通道 */
.ccccip { padding-bottom:55px; background-color:#f1f1f1; color:#424e60;}
/* 专属服务 */ 
.serve { color:#545454;}
.serve .xl li { float:left; margin:38px 98px 50px 22px; text-align:center;}
.serve .xl li.last { margin-right:0;}
/* 如何享受贵宾通道 */
.enjoy { padding-top:36px;  background:#F1F1F1;}
/* 通道分布 */
.gallery { padding-bottom:55px; }
.gallery .xl li { float:left; margin:38px 138px 22px 0px; }
.gallery .xl li.last { margin-right:0;}
/* QA */ 
.qa { padding:78px 0 55px; background:#F1F1F1; color:#222633;}
.qa .xl { left:37px; top: 156px;}
.qa .xl li { padding-bottom:30px;}
.qa .xl2 {left: 525px; top: 156px;}
.qa .xl2 li { padding-bottom:30px;}
.qa .xl2 li.last { padding-bottom:18px;}
/* 二维码 */
.QR_Code { border-bottom:46px solid #bcbcbc;}
.pd55 { padding:50px 0 65px;}
.c-424e60 { color:#424e60;}
/* 通用 */	
/*  blk 圆角背景 */
.blk-red { padding: 2px; background: red; -webkit-border-radius: 4px; -moz-border-radius: 4px; -o-border-radius: 4px; border-radius: 4px; }
.blk2 { padding:2px; -webkit-border-radius: 2px; -moz-border-radius: 2px; -o-border-radius: 2px; border-radius: 2px; }
.blk5 { -webkit-border-radius: 50%; -moz-border-radius: 50%; -o-border-radius: 50%; border-radius: 50%; }
.blk6 { padding:5px; -webkit-border-radius: 6px; -moz-border-radius: 6px; -o-border-radius: 6px; border-radius: 6px; }

/* 标题 */
.hd { padding: 50px 0 66px; }
.hd h2 { margin:auto; font-size:38px; line-height:18px; color:#424e60; display:inline-block; }

.hdBg,.hdBg2 { margin:0 auto -36px; padding-top:36px; width:72px; height:36px; background-color:#FFF; display:block; position:relative; z-index:2;}
.hdBg2 { margin:-36px auto 0;  background-color:#F1F1F1;}

/* 文本列表 */
.ti2 { text-indent: 2em; }
.ti-9999 { width: 0px; height: 0px; overflow: hidden; text-indent: -9999em; display: inline-block; }
.tac { text-align: center; }
.tal { text-align: left; }
.tar { text-align: right; }
.ml30 { margin-left: 30px; }
.lh10 { line-height: 10px; }
.lh18 { line-height: 18px; }
.vm { vertical-align: middle; }
.tdu { text-decoration: underline; }
.tdn { text-decoration: none; }
.xl li { line-height: 24px; }
/* 位置 */
.pt-r { position: relative; }
.pt-a { position: absolute; }
/* 图片 */
/* 背景图片 */.icon-common { margin:auto; display:block; background-image:url(${basePath}/images/plane/2451403625.png);  background-repeat: no-repeat; }
.icon_common_logo { display: block; background-image: url(http://i3.yongche.name/css/app/web3/images/icon-common-logo.png?1435645200); background-repeat: no-repeat; }
.icon-footer-logoTel { display: inline-block; background-image: url(http://i1.yongche.name/u/images/201404/134766425.png?1435645200); background-repeat: no-repeat; }

.icon-1 { width:747px; height:230px; background-position:-54px 0px;}
.icon-2 { width:826px; height:120px; background-position:0px -229px;}
.icon-3 { width:812px; height:506px; background-position:0px -355px;}
.icon-4 { width:856px; height:508px; background-position:0px -869px;}
.icon-5 { width:772px; height:389px; background-position:0px -1382px;}
.icon-6 { margin-left:-30px; width:979px; height:224px; background-position:0px -1778px;}
.icon-7 { margin:80px auto; width:813px; height:226px; background-position:0px -2003px;}
.icon-8 { width:304px; height:388px; background-position:0px -2231px;}

.icon-hd { width:34px; height:25px; background-position:-916px 0px;}

/* 广告 通用 */  .banner { overflow: hidden; }
/* 图片列表 */
.plate_bg { background-color: #FFF; overflow: hidden; }

/* javascript效果*/


.header{margin:0;}
.disNo{display: none;}
#speek{ width: 940px; height: auto; overflow: hidden;margin:30px auto 0} 
.speekContainer{ width: 9999px;}
.speekContainer .item{ width: 940px; height: auto; float: left;}
.speekContainer .item .xl li{ height: 150px;}
.hd{border:none}
.scroll .btn{margin-bottom: 50px;margin-top: 30px}
#car_switch_wrap{width:990px;margin:0 auto;height:800px;overflow:hidden;}
.car_switch{width:9999px;background-position: left 90px!important;padding-top:0px!important}
.car_switch .item{float:left;width:990px;position:relative;height:600px;}
.hd{background:none}
.btn_r,.btn_z{z-index: 1000}
.scroll .Dbtn{width: auto;text-align: center}
.scroll a:hover {
color: #fff;
text-decoration: none;
}
</style>


</head>

<body class="">
<!-- render: data/block/v9/common/header.tpl at 2014-03-06 15:24:16 by 641 {{ --> 
<!-- header -->

<!-- render: data/block/v9/common/header.tpl at 2015-06-30 18:25:21 by 1350 {{ -->
<style type="text/css">
    .header_menu_drop{ display: none;}
    .header_menu_drop a:hover{ background: #c51e24; color: #FFF;}
    .down .header_menu_drop{ display: block;}
    .header .nav .xl li._menu_drop{ width: 108px; padding: 0px; text-align: center;}
</style>

<script type="text/javascript">
    Do( function(){
        $( "._menu_drop").hover( function(){
            var _self = $( this);

            _self.addClass( "down");
            _self.children('a').addClass( "opacity5");
        }, function(){
            var _self = $( this);

            _self.removeClass( "down");
            _self.children('a').removeClass( "opacity5");
        });
    });
</script>
<jsp:include page="/header.jsp"/>
<!-- }} render data/block/v9/common/header.tpl at 2015-06-30 18:25:21 by 1350 -->

<!-- header --> 
<!-- }} render data/block/v9/common/header.tpl at 2014-03-06 15:24:16 by 641 --> 
<div id="main" class="max_banenr">
  <div class="wp pt-r">
    <div style="padding-top:169px;"><i class="icon-common icon-1"></i></div>
    <a class="btn blk6 xs10 tac c-white _tiyan">立即体验</a>
  </div>
</div>
<!--S CIP贵宾通道 -->
<div class="ccccip ">
<div class="hd tac"><h2>什么是CIP通道快捷登机服务？</h2></div>
<div class="tac xs5">CIP通道快捷登机是机场为注重效率的商旅人士提供的一项快捷登机及休息的服务。<br>
即日起通过礼途预订送机服务，即可免费直达CIP通道，无需等待，经安检快捷登机。<br>
</div>
</div>
<!--E CIP贵宾通道 -->
<div class="blk5 hdBg2"><i class="icon-common icon-hd"></i></div>
<!--S 专属服务 -->
<div class="serve wp">
<div class="hd tac"><h2>您可以享受哪些专属服务？</h2></div>
<div class="icon-common icon-2"></div>
<ul class="xl xs4 cl">
<li><b>送机服务 免费升级</b><br>
国内航班送机服务免费升级</li>
<li><b>CIP通道 快捷登机</b><br>
提高出行效率，并享受休息室服务</li>
<li class="last"><b>常客计划 品质体验</b><br>
礼途用户送机服务新体验</li>
</ul>
</div>
<!--E 专属服务 -->
<div class="blk5 hdBg"><i class="icon-common icon-hd"></i></div>

</div>
<!--E QA -->

</div>
<!-- render: data/block/v9/common/footer.tpl at 2014-03-06 15:24:16 by 641 {{ --> 
<!-- footer -->
<div class="footer" style="margin-top:0; background-color:#333333;">
  
<!-- render: data/block/v9/common/footer1.tpl at 2015-06-30 18:25:21 by 1350 {{ -->
<!-- footer -->
            <div class="wp">
    <div class="info z">
      <div class="logo"><a class="icon-footer-logoTel logoa" href="/" title="易到用车官网"></a><a class="icon-footer-logoTel tel ml30" title="易到客服务热线400-1111-777海外服务热线:+86-10-58456666"></a></div>
      <p class="txt"><!-- 京公网安备11010602004437 |  --><a href="http://www.miibeian.gov.cn/" class="c-white">京ICP证110470号</a> | 京ICP备11005954号<br>
        &copy; 2015 北京东方车云信息技术有限公司 YongChe.com 版权所有</p>
      <div class="believe"> <a target="_blank" href="https://ss.knet.cn/verifyseal.dll?sn=2011033100100007667&ct=df&a=1&pa=532171"><i class="icon_common_logo icon_cnnic"></i></a> <a target="_blank" href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202013071000033"><i class="icon_common_logo icon_hd315"></i></a> </div>
    </div>
    <div class="nav cl">
      <ul class="xl">
        <h2>关于易到</h2>
        <li><a href="/intro/originator.html">易到历程</a></li>
        <li><a href="/intro/chronicle.html">易到大事记</a></li>
        <li><a href="/job/intro.html">加入易到</a></li>
        <li><a href="/intro/about.html">关于易到</a></li>
        <li><a href="/intro/contact.html">联系我们</a></li>
      </ul>
      <ul class="xl">
        <h2>支付说明</h2>
        <li><a href="/help/1_1.html">关于费用</a></li>
        <li><a href="/help/1_2.html">关于支付</a></li>
        <li><a href="/help/1_3.html">关于优惠</a></li>
        <li><a href="/help/1_4.html">关于发票</a></li>
      </ul>
      <ul class="xl">
        <h2>用车帮助</h2>
        <li><a href="/help/2_1.html">预订用车</a></li>
        <li><a href="/help/2_2.html">车辆服务</a></li>
        <li><a href="/help/2_4.html">城郊界限</a></li>
        <li><a href="/help/2_3.html">免费增值服务</a></li>
        <li><a href="/help/2_6.html">常见问题</a></li>
      </ul>
      <ul class="xl">
        <h2>特色服务</h2>
        <li><a href="/help/4_1.html">企业用户</a></li>
        <li><a href="/yorder/">用车卡</a></li>
        <li><a href="/help/4_4.html">其他服务</a></li>
      </ul>
    </div>
  </div>
        <!-- footer -->   
<!-- }} render data/block/v9/common/footer1.tpl at 2015-06-30 18:25:21 by 1350 -->

</div>
<div class="popdiv_white" id="pop_div2" style="width: 500px; display: none;color:#545454"> 
    <div class="white-t-r"><div class="white-t-l"></div></div>
    <div class="bg_white popdiv_white_main"> 
            
            <a class="popdiv_close icons icons-close-light _close" title="关闭" href="javascript:;"></a>
            <div class="popdiv_title">提示</div>
            <div class="gray-t-r"><div class="gray-t-l"></div></div>
            <p class="mt20">
                抱歉，您还没有登录，请&nbsp;&nbsp;<a class="blue" id="_popwin_tologin" href="https://www.yongche.com/login/">点击登录</a>
                <br>
                如果您还没有易到用车账号，请&nbsp;&nbsp;<a class="blue" id="_popwin_toreg" href="https://www.yongche.com/register/">点击注册</a>
                <br>
            </p>
            <div class="gray-b-r"><div class="gray-b-l"></div></div>
       
    </div>
    <div class="white-b-r"><div class="white-b-l"></div></div>
</div>
</div>
<!-- }} render data/block/v9/common/footer.tpl at 2014-03-06 15:24:16 by 641 -->
<script type="text/javascript" src="http://i1.yongche.name/js/do/do.all.js?1435645200"></script>

<!-- render: data/block/autoreg-valid.tpl at 2015-06-30 18:25:21 by 1350 {{ -->
<style>
.navtips {
z-index: 1001;
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: url(http://i3.yongche.name/u/images/201410/3559905029.png?1412450400?1435645200) 0px 0px no-repeat;
background-size: 100%;
}
</style>
<!-- script type="text/javascript" src="http://i1.yongche.name/js/do/do.all.src.js?1435645200"></script -->
<script type="text/javascript">

function is_weixn(){  
    var ua = navigator.userAgent.toLowerCase();  
    if(ua.match(/MicroMessenger/i)=="micromessenger") {  
        return true;  
    } else {  
        return false;  
    }  
}  

if(is_weixn() && !window.no_need_navtips){
    var navtips = document.createElement('div');
    navtips.className = "navtips";
    navtips.id = "navtips";
 document.body.appendChild(navtips);
    document.getElementById("navtips").onclick=function(e){
          e.target.style.display="none";
}
}
function isMobileBrowser() {
    var u = navigator.userAgent,
    app = navigator.appVersion;
    if (u.indexOf('Android') > -1 || u.indexOf('iPhone') > -1) {
        return true;
    } else {
        return false;
    }
}

Do('j.validate', function(){

    function isFull( str){ return str != null && str.length > 0;}
    var redirectUrl = (typeof(RedirectUrl)!== "undefined")?('www.yongche.com/r/reg_succ_done.php?redirect='+encodeURIComponent(RedirectUrl)):'';

    var settings = {
        target: '_self',
        method: 'post',
        action: 'http://' + window.location.host + '/register/',
        actions: 'https://' + window.location.host + '/register/',
        done:  redirectUrl,
        source: '201',
        invite: null
    };

    var invite_pop_isInit = false;
    function getInvitePop(){

        var $num_tip = $("#num_tip");
        if( $num_tip.length == 0){
            $num_tip = $('<div class="popdiv w360" id="num_tip" style="display: none;">\
                <div class="title"><strong class="f14 l">温馨提示</strong>\
                    <a href="javascript:;" class="close r _close"></a>\
                </div><br>\
                <div class=" span09 mar-a of-h">\
                    <p class="l span02"><span class="ico_warning mar-t"></span></p>\
                    <div class="of-h f14">\
                        <p>错误次数过多，不可再输入了！</p><br>\
                        <p class = "ta-c"><input class="btn bm-red _close c-white" value="关闭" type="button"></p>\
                    </div>\
                </div><br>\
              </div>');

            $num_tip.appendTo("body");
        }
        
        invite_pop_isInit = invite_pop_isInit == true || ( $num_tip.find("._close").click( function(){
            var _self = $( this);
            Do( "c.common", function(){
                pop.hide();
                YCUtils.showMaskBackground( false);
            });
        })) != null;

        return $num_tip;
    }

    var $cps = $(':input[name=cellphone]');

    $cps.each( function(){

        var $cellphone = $( this), sets = {};
        // 将更多的配置放在input[name=cellphone]上可以更灵活
        $.each( settings, function( name, value){
            if( isFull( $cellphone.attr( name))){
                sets[ name] = $cellphone.attr( name);
            }else{
                sets[ name] = settings[ name];
            }
        });

        var $form = $cellphone.parents('form');
        if( $form.length == 0){
            var $parent = $cellphone.parent(), flag = true;
             
            while( flag && $parent.length > 0 && $parent.find(':submit,._r_submit').length == 0){
             
                if( $parent.parent().get(0).tagName.toLowerCase() != 'body')
                    $parent = $parent.parent();
                else
                    flag = false;
            }
             
            $parent.wrapInner( '<form ></form>');
            $form = $parent.children('form');
        }

        $form.attr( sets);

        if( isFull( sets.done)){
            var $done = $form.find(':input[name=done]');
            if( $done.length == 0){
                $done = $('<input type="hidden" name="done" />').appendTo( $form);
            }
            $done.val( sets.done);
        }

        $.validator.addMethod("validMobile", function( value, element){
            return /^1[345678][0-9]{9}$/i.test( value);
        },"手机号码格式不正确");

        // 若同一页面有两个提交表单，则在判断repassword时equalTo中selector必须唯一
        var ptval = "password_" + Math.round( Math.random() * 99999999);
        var $password = $form.find(":password[name=password]");
        $password.attr("fid", ptval);

        var lastPhone = "";
        $.validator.addMethod( "releaseInvite", function( value, element){

            if( lastPhone != value){
                lastPhone = value;
                var invite = $form.find( ":text[name=invite_code_id]");
                invite.removeAttr("disabled").attr("placeholder", invite.attr("ph"));
            }

            return true;
        },"");

        $.validator.addMethod( "rangeIn", function( value, element, params){

            var result = false;

            $.each( params, function( index, len){
                result = result || value.length == len;
            })

            return result;
        },"长度必须在指定范围内");


        $.validator.addMethod( "validOther", function( value, element, params){

            var valid = $( params).valid();
            return true;
        },"");

        $.validator.addMethod( "resetAndValid", function( value, element, params){

            if( !$( params).valid()){
                window.setTimeout( function(){
                    $form.validate().resetForm();
                }, 10);
            }
            return true;
        },"");

        // jQuery.validate中，remote验证只支持服务器返回true/false，对于其它类型的返回数据判断就不支持了
        // 所以这里新增的method只是在remote的基础上有一点点修改。
        $.validator.addMethod( "remoteForCustom", function( value, element, param){
            var ajaxCallback = param && param.ajaxCallback || null;
            if ( this.optional(element) ) {
                return "dependency-mismatch";
            }

            var previous = this.previousValue(element);
            if (!this.settings.messages[element.name] ) {
                this.settings.messages[element.name] = {};
            }
            //previous.originalMessage = this.settings.messages[element.name].remoteForCustom;
            //this.settings.messages[element.name].remoteForCustom = previous.message;

            param = typeof param === "string" && {url:param} || param;

            if ( this.pending[element.name] ) {
                //return "pending";
            }
            if ( previous.old === value ) {
                //return previous.valid;
            }

            //previous.old = value;
            var validator = this;
            this.startRequest(element);
            var data = {};
            data[element.name] = value;
            $.ajax($.extend(true, {
                url: typeof param.url == "function" ? param.url() : param.url,
                mode: "abort",
                port: "validate" + element.name,
                dataType: "text",
                data: data,
                success: function(response) {
                    validator.settings.messages[element.name].remoteForCustom = previous.originalMessage;

                    var valid = ( typeof ajaxCallback == "function") ? ajaxCallback( response) :
                        ( response === true || response === "true");

                    if ( valid ) {
                        var submitted = validator.formSubmitted;
                        validator.prepareElement(element);
                        validator.formSubmitted = submitted;
                        validator.successList.push(element);
                        delete validator.invalid[element.name];
                        validator.showErrors();
                    } else {
                        var errors = {};
                        var message = response || validator.defaultMessage( element, "remoteForCustom" );
                        errors[element.name] = previous.message = $.isFunction(message) ? message(value) : message;
                        validator.invalid[element.name] = true;
                        validator.showErrors(errors);
                    }
                    //previous.valid = valid;
                    validator.stopRequest(element, valid);
                }
            }, param));
            return "pending";
        }, "验证错误");

        $form.find( ":text[name=invite_code_id]").blur( function(){
            $form.validate().element( ":text[name=invite_code_id]" );
        });

        var $verify_code = $form.find( ":input[name=verify_code]");
        var $invite_code_id = $form.find( ":input[name=invite_code_id]");

        $verify_code.change( function(){
             $form.validate().previousValue( $invite_code_id[0]).old = null;
        });

        $form.validate( {
            rules:{
                cellphone: {
                    required: true,
                    validMobile: true,
                    remote: "/ajax/user_validate.php?type=cellphone&crumb=1d3d00ac90"
                },
                verify_code:{
                    required: true,
                    //minlength: 5,
                    //rangeIn: [4,6],
                    validOther: $cellphone,
                    remote: function(){
                        return "/ajax/verify_code.php?type=reg_vcode_verify_remote&cellphone=" + 
                                $cellphone.val();
                    }
                },
                captcha:{
                    required: true,
                    remote: function(){
                        return "/ajax/verify_code.php?type=captcha_check&response_type=text";
                    }
                },
                password: {
                    required: true,
                    rangelength: [6, 20]
                },
                repassword:{
                    required: true,
                    rangelength: [6, 20],
                    equalTo: ":password[fid=" + ptval + "]"
                },
                invite_code_id:{
                    required: $form.find(":input[name=invite_code_id]").attr("req") == "true",
                    validOther: $verify_code,
                    remote: function( element){
                        return "/ajax/check_invite_code_no_userid.php?cellphone=" + $cellphone.val() + 
                            "&verify_code="  + $form.find(":input[name=verify_code]").val();
                    }
                },
                invite_code_cellphone:{
                    required: true,
                    validMobile: true,
                    remote: function( element){
                        return "/ajax/check_invite_code_no_userid.php?cellphone=" + $cellphone.val() +
                            "&invite_code_id=" + $form.find(":input[name=invite_code_cellphone]").val() + 
                            "&verify_code=" + $form.find(":input[name=verify_code]").val();
                    }
                }
            },
            onkeyup: false,
            messages:{
                cellphone:{ required:"请输入手机号码", remote: "该手机号已注册"},
                verify_code: { required: "请填写验证码", rangeIn: "长度必须是{0}或{1}", remote: "验证码错误"},
                captcha: { required: "请填写图片验证码", minlength: "验证码必须是4位数字", maxlength: "验证码必须是4位数字", remote: "图片验证码错误"},
                password:{ required: "请输入密码", rangelength: "密码长度在{0}-{1}位之间"},
                repassword:{ required: "请输入密码", rangelength: "密码长度在{0}-{1}位之间", equalTo: "两次密码输入不一致"},
                invite_code_id: { required: "请输入邀请码", remote: "输入错误"},
                invite_code_cellphone:{ required:"请输入邀请手机号", remote: "该手机号无效.详情参考邀请细则"}
            },
            errorPlacement: function( error, element){

                if( element.attr( "name") == "captcha" && !hasCaptchaCode){
                    error.css({
                        paddingLeft: 0
                    });
                }

                error.appendTo( element.parent());
            },
            showErrors: function( errorMap, errorList){

                var invite = errorMap.invite_code_id || "";

                if( errorMap.captcha == "图片验证码错误"){
                    captcha_release();
                }

                if( invite.indexOf("3.") != -1){

                    var invite = $form.find(":text[name=invite_code_id]");
                    invite.attr("disabled", "true").val("");
                    invite.attr("ph", invite.attr("placeholder")).removeAttr("placeholder");
                    Do("c.common", function(){
                        YCUtils.moveToScreenCenter( $("#num_tip")).show();
                        YCUtils.showMaskBackground( true);
                    });
                }else{

                    this.defaultShowErrors();
                }
            },
            submitHandler: function( form){

                var _form = $( form),
                    valid = true;

                _form.find(":input").each( function(){
                    var _input = $( this);
                    valid = valid && ( 
                        _input.is(":not(:text)") || 
                        this.id == "invite_code_id" || 
                        this.name == "invite_code_id" || 
                        _input.valid()
                    );
                });
                
                if( !valid){
                    return;
                }

                var $invite_code_cellphone = _form.find(":text[name=invite_code_cellphone]"),
                    $invite_code_id = _form.find(":hidden[name=invite_code_id]");

                if( $invite_code_cellphone.val()){
                    $invite_code_id.val( $invite_code_id.val() || $invite_code_cellphone.val() );
                }

                if( $password.length == 0){

                    $.ajax( sets.action, {
                        type: 'POST',
                        data: {
                            cellphone: $cellphone.val(),
                            invite_code_id: sets.invite || $form.find('#invite_code_id').val(),
                            'responseType': 'json', 
                            'source': sets.source,
                            'verify_code': $(':input[name=verify_code]').val()
                        },
                        
                        success: function( res){
                            var r = $.parseJSON(res);
                            //console.log(r);

                            if (r.success && r.isReg) {

                                $cellphone.trigger( "autoreg.reg_success");

                                if( isFull( sets.done)){
                                    
                                    window.location.href = sets.done;
                                }else{
                                    alert('注册成功');
                                }
                            }else if( r.result && r.result.invite_code_id){

                                if( r.result.invite_code_id.toLowerCase() == "msg_invite_code_not_third_party_user"){
                                    alert( $cellphone.attr( r.result.invite_code_id.toLowerCase()));
                                }else{
                                    alert( r.result.invite_code_id);
                                }
                               captcha_release();
                                $captchaCode.val('');
                                $verify_code.val('');  
                            }  else {
                                alert( "手机号码：" + $cellphone.val() + 
                                    "注册失败");
                                captcha_release();
                                $captchaCode.val('');
                                $verify_code.val('');  
                            }
                        } 
                        /*success: function( res){
                            var r = $.parseJSON(res);

                            if (r.success && r.isReg) {

                                $cellphone.trigger( "autoreg.reg_success");

                                if( isFull( sets.done)){
                                    window.location.href = sets.done;
                                }else{
                                    alert('注册成功');
                                }
                            }else if( r.result && r.result.invite_code_id){

                                alert( $cellphone.attr( r.result.invite_code_id.toLowerCase()));
                            }  else {
                                alert( "手机号码：" + $cellphone.val() + 
                                    " 已注册，请输入其它手机号码");
                            }
                        }*/
                    });
                }else{

                    $cellphone.trigger( "autoreg.reg_success");
                    _form.attr("action", sets.actions);
                    form.submit();
                }
            }
        });

        function VALID_ELEMENT( elem){
            return $form.validate().element( elem);
        }

        /**
         * 图片验证码 
         */
        var $captchaCode = $form.find( "[name=captcha]"),
            $captchaImage = $form.find( "._captcha_img"),
            hasCaptchaCode = $captchaCode.length != 0,
            $captchaCodeLayer,
            captchaCodeLayer_width = 135;

        var $validateCodeButton = $form.find('._valiCodeButton');
        $validateCodeButton.data( "sourceHTML", $validateCodeButton.val() || $validateCodeButton.html());
        

        if( !hasCaptchaCode){
            $captchaCodeLayer = $( "<div id='autoreg_captcha_code_layer'></div>").hide().appendTo( $validateCodeButton.parent());
            $captchaCodeLayer.css({
                position: "absolute",
                width: captchaCodeLayer_width,
                border: "solid 1px #8c8c8c",
                backgroundColor: "white",
                zIndex: 1100,
                padding: "5px 25px"
            });

            var captchaCodeLayer_outerWidth = $captchaCodeLayer.outerWidth( true);

            $captchaCodeLayer.append( "<div style='text-align: center;'><img class='_captcha_img' src='/images/vcode.php' height='36px'></div>");
            $captchaCodeLayer.append( "<div><input type='text' placeholder='请输入上方图片内容' name='captcha' style='display:block;'></div>");

            $captchaCode = $captchaCodeLayer.find( ":text[name=captcha]");
            $captchaImage = $captchaCodeLayer.find( "._captcha_img");
            var $captchaCodeButton = $captchaCodeLayer.find( "._captcha_button");

            $captchaCode.bind( "keyup keudown click", function(){

                if( $captchaCode.valid()){
                    $captchaCodeLayer.hide();
                    $validateCodeButton.triggerHandler( 'click');
                }
            });

        }else if( $captchaImage.length == 0){
            // 尽量减少页面的修改，能使用DOM查找的就用DOM查找吧
            var $imgs = $captchaCode.parent().find( "img:empty([src])");
            if( $imgs.length > 0){
                $captchaImage = $imgs.eq( 0);
                captcha_release();
            }
        }


        function captcha_release(){
            $captchaImage.attr( "src", "/images/vcode.php?r=" + ( Math.random() * 999));
            $captchaCode.val( '');
        }

        function showCaptcha_code(){

            if( !hasCaptchaCode){

                captcha_release();
                var pos = $validateCodeButton.position(),
                    height = $validateCodeButton.outerHeight( true),
                    width = $validateCodeButton.outerWidth( true);

                $captchaCodeLayer.css({
                    top: pos.top + height + 2,
                    left: ( pos.left + width) - captchaCodeLayer_outerWidth
                }).show();
            }
        }

        $captchaImage.click( function(){
            this.src = "/images/vcode.php?r=" + ( Math.random() * 999);
        });

        // 向手机发验证码
        $validateCodeButton.click( function(){
            if( !VALID_ELEMENT( $captchaCode)){
                showCaptcha_code();
                return;
            }          

            if( $cellphone.valid() ){

                function msg( str){
                    alert( str);
                }

                $.post("/ajax/verify_code.php", {
                    type: "reg_vcode",
                    ___action: "reg",
                    cellphone: $cellphone.val(),
                    captcha: $captchaCode.val()
                }, function( r){
                    var res = $.parseJSON( r);
                    if( res.code != 200){


                        if( res.code == 499){
                            // 验证码填错啦，赶紧去重填吧
                            msg( "图片内容输入错误");
                            showCaptcha_code();
                        }else{
                            msg( res.msg);
                        }
                        captcha_release();
                    }else{

                        $cellphone.trigger( "autoreg.send_validateCode");

                        $validateCodeButton[ $validateCodeButton.val() ? "val" : "html" ]( "重新获取 60").
                            attr("disabled", "true");
                        var count = 60;

                        var countDownFun = function(){
                            count --;
                            if( count >= 0){
                                $validateCodeButton[ $validateCodeButton.val() ? "val" : "html" ]( "重新获取 " + count);
                                window.setTimeout( countDownFun, 1000);
                            }else{
                                $validateCodeButton.removeAttr("disabled");
                                $validateCodeButton[ $validateCodeButton.val() ? "val" : "html"]( 
                                    $validateCodeButton.data( "sourceHTML"));
                                captcha_release();  
                            }
                        }
                        window.setTimeout( countDownFun, 1000);
                    }
                });
            }
        });


        $form.find('._r_submit').click( function(){
            $form.submit();
        });
    });
});
</script>
<!-- }} render data/block/autoreg-valid.tpl at 2015-06-30 18:25:21 by 1350 -->


<!-- render: data/block/bd/ajs-common.tpl at 2015-06-30 18:25:21 by 1350 {{ -->
<style type="text/css">

.carwindow{background:#fff; height:530px; padding:20px 50px; position:absolute; top:100px; left:200px; width:780px; overflow:hidden;}
.carwindow .title{height:70px; line-height:70px; background:#a2a0a0; padding-left:110px; color:#fff;}
.carwindow .operation{padding:0 50px; position:relative; zoom:1;}
.carwindow .arrow-l{position:absolute; top:180px; left:0;}
.carwindow .arrow-r{position:absolute; top:180px; right:0;}
.carwindow .procard{border:1px solid #bbb9b9; width:680px; position:relative;}
.carwindow .info{ border-top:1px solid #bbb9b9; padding:20px 70px;}
.carwindow .mask-pro{position:absolute; top:-5px; left:-6px;}
.carwindow .i-pers {background: url(http://i3.yongche.name/images/app/common/ico.gif?1435645200) no-repeat right -350px;width: 15px;height: 15px;display: inline-block;vertical-align: middle;}

.carwindow .btn-red-o{background: url(http://i3.yongche.name/u/images/201301/331803201.jpeg?1435645200) no-repeat; width:139px; height:32px; line-height:32px; display:inline-block;}
.carwindow .c-white{color:#fff;}

.mask-hour{ background:url(http://i3.yongche.name/u/images/201304/3457778269.jpeg?1435645200) no-repeat; width:111px; height:111px; display:inline-block}
.mask-from{ background:url(http://i1.yongche.name/u/images/201409/1870212210.jpeg?1435645200) no-repeat; width:111px; height:111px; display:inline-block}
.mask-to{ background:url(http://i1.yongche.name/u/images/201409/3591919109.jpeg?1435645200) no-repeat; width:111px; height:111px; display:inline-block}
.mask-halfday{ background:url(http://i1.yongche.name/u/images/201405/3685551766.png?1435645200) no-repeat; width:111px; height:111px; display:inline-block}
.mask-fullday{ background:url(http://i2.yongche.name/u/images/201405/281099660.png?1435645200) no-repeat; width:111px; height:111px; display:inline-block}
.mask-hotline{ background:url(http://i2.yongche.name/u/images/201405/3897156016.png?1435645200) no-repeat; width:111px; height:111px; display:inline-block}

.f14{font-size:14px;} 
.f18{font-size:18px;}
.of-h{overflow:hidden; zoom:1;}
.cls{clear:both;}
.pos-r{position:relative; zoom:1;}

.carwindow .c-red {color:#e4314e;}

.gap-hr-m{margin-top:10px;}
.gap-in-m{padding:10px;}
.gap-in-l{padding:20px;}
.gap-vt-l{padding-left:20px;}
.l{float:left;}
.r{float:right;}

.blk-red{background:#cc0000; padding:2px; line-height:1.2; color:#fff;}

#carListLayer .gap-in-l{ padding: 15px;}
</style>
<div class="carwindow" style="display:none;z-index: 5001;" id="carListLayer"><br />
    <div class="of-h">
        <p class="l"><strong class="f18 c-red">各地价格不同，请先选择您的租车地点</strong>  
            <select style="width:150px; " id="citySelector"><option value="bj">北京</option></select>
        </p>
        <p class="r"><a href="javascript:;" class="_close"><img src="http://i1.yongche.name/u/images/201304/2730315700.jpeg?1435645200" /></a></p>
    </div><br />
    <div class="operation" id="operation">
        <div style="display:none;">
            <div class="procard" id="carCard" style="position:absolute; background-color: white;">
                <div class="title"><strong class="f24 _name">舒适车型</strong> <span class="gap-vt-l f20 _detail">预订率最高的车型，性价比最优的舒适享受</span></div>
                <div class="ta-c gap-in-l">
                    <p><img src="http://i1.yongche.name/u/images/201304/3677866079.jpeg?1435645200" height="175" class="_img"></p><br />
                    <p class="f20"><strong class="_desc">半日租舒适车型：帕萨特 等车型</strong></p>
                </div>
                <div class="info of-h">
                    <p class="l f14"> <span class="ico i-pers"></span> ×<label class="_personCount f14">4</label>人（含 <span class="blk-red f14">油</span> <span class="blk-red f14">险</span> <span class="blk-red f14">驾</span> ） </p>
                    <p class="r _price f14">20元/半小时+4元/公里，1小时起租</p>
                </div>
                <div class="mask-pro"><span class="mask-hour" id="flag"></span></div>
            </div>
        </div>

        <div id="carCardContainer" style="width: 682px; height: 400px; overflow: hidden; position: relative; padding: 4px;"></div>
        <div class="arrow-l"><a href="javascript:;"><img src="http://i3.yongche.name/u/images/201304/331693846.jpeg?1435645200" /></a></div>
        <div class="arrow-r"><a href="javascript:;"><img src="http://i1.yongche.name/u/images/201304/834742382.jpeg?1435645200" /></a></div>
    </div>
</div>

<SCRIPT TYPE="text/javascript">
    Do.ready( function(){
        var $carListLayer = $( "#carListLayer" ),
            $carCardContainer = $( "#carCardContainer" ),
            $operation = $( "#operation" ),
            $arrowLeft = $operation.children( "div.arrow-l"),
            $arrowRight = $operation.children( "div.arrow-r"),
            $citySelector = $( "#citySelector" ),
            $carCard = $( "#carCard" ),
            lastProductId = null;

        // 初始化城市列表
        function initCitySelect( productId ){
            if( productId == lastProductId)
                return;

            lastProductId = productId;
            $citySelector.empty();
            var HOTLINE_CITYS = [ "bj", "sh", "gz", "sz", "cd", "gl", "sjz", "xm", "su", "cc", "zz"],
                AIR_EXCEPT_CITYS = [ "dg", "su", "ts", "jz", "jincheng", "linfen" ],
                FULLDAY_CITYS = ["bj", "sh", "gz", "sz", "cq", "qd", "xa", "cd", "chs", "ty", "sy", "gl", "hk", "zh", "jn", "nj", "cc", "zz", "su", "xm", "hf", "km", "dt", "jincheng", "jz", "yuncheng", "linfen", "dl", "nb", "wz", "fz", "qz", "yt", "weihai", "luoyang", "nn", "ts", "hrb", "hu", "bn"],

                default_index = 0,
                count = -1;

            CITYS_EACH( function( py, city ){
                if( ( productId == 7 || productId == 8 ) && $.inArray( py, AIR_EXCEPT_CITYS ) > -1 )
                    return;

                if( productId == 13 && $.inArray( py, HOTLINE_CITYS ) == -1 )
                    return;

                if( productId == 12 && $.inArray( py, FULLDAY_CITYS ) == -1)
                    return;

                $citySelector.append( "<option value='" + py + "' " + 
                    //( py == "bj" ? "selected='selected'" : "") +
                    ">" + city.name + "</option>");
                count ++;

                if( window.__CARWINDOW_DEFAULT_CITY == py){
                    default_index = count; 
                }
            });

            $citySelector.get( 0).selectedIndex = default_index;
        }

        function citySelectPro( type ){
            if( type == "record" ){
                window._city_select_record = $citySelector.val();
            }else if( type == "recover"){
                $citySelector.find( "option" ).removeAttr( "selected" );
                var $opt = $citySelector.find( 
                    "option[value=" + ( window._city_select_record || 'bj' ) + "]");
                $citySelector[ 0].selectedIndex = $opt.index();
            }
        }

        Do( "c.yc.citys", function(){
            initCitySelect( 1 );
        });

        window.PRODUCTS = {};
        var CAR_IMGS = {
                "1" : "http://i1.yongche.name/u/images/201211/3585159706.jpeg?1435645200",
                "2" : "http://i3.yongche.name/u/images/201211/1381684464.jpeg?1435645200",
                "3" : "http://i1.yongche.name/u/images/201211/3245365434.jpeg?1435645200",
                "4" : "http://i2.yongche.name/u/images/201211/3302727707.jpeg?1435645200",
                "5" : "http://i2.yongche.name/u/images/201211/2384561671.jpeg?1435645200",
                "12" : "http://i2.yongche.name/u/images/201212/1750308837.png?1435645200",
                "16" : "http://i1.yongche.name/u/images/201405/2887524412.jpeg?1435645200"
            },
            CAR_DETAIL = {
                "1" : '经济实用的车型，价格更低效率至上',
                "2" : '预订率最高的车型，性价比最优的舒适享受',
                "5" : '宽敞旅行空间，明星们最喜欢的车型',
                "3" : '商务宴请最佳车型，为成功锦上添花',
                "4" : '偶尔纵情奢华，生活欢迎惊喜',
                "12" : '多快好省，一样的招手不一样的出租车',
                "16" : '打开车门是北京，关上车门是北欧'
            },
            PRODUCT_FLAG_CLASS = {
                "1" : "mask-hour",
                "7" : "mask-from",
                "8" : "mask-to",
                "11": "mask-halfday",
                "12": "mask-fullday",
                "13": "mask-hotline" 
            };

        function getProductInfo( city, callBackFn ){
            // 利用undefined !== null的特性来防止反复读取同一城市数据
            callBackFn = callBackFn || function(){};

            PRODUCTS[ city ] === undefined ? 

                ($.getJSON( "/ajax/get_product_info.php?product_type_id_list=1,7,8,13,12,11&city=" + city, function( res ){
                    PRODUCTS[ city ] = res.code == 200 ? res.result : null;
                    getProductInfo( city, callBackFn );

                })) : 

                callBackFn( PRODUCTS[ city ]);
        }

        var CURRENT_CAR_INDEX = 0,  // 当前显示的车辆ID
            CURRENT_CAR_MAP = [];

        function fillProduct( $card, city, index, productId, callBackFn ){
            // 在弹窗中显示某个车型的数据。
            callBackFn = callBackFn || function() {}

            getProductInfo( city, function( product ){
                var pdata = product[ productId ];

                // 因为车辆的信息是以object类型存放的，将其key变成数组可以方便后面
                CURRENT_CAR_MAP.length == 0 ? !function(){
                    for( var a in product[ productId ].car_type_list){
                        if( a != 1 )
                            CURRENT_CAR_MAP.push( a );
                    }
                }() : null;

                var carId = CURRENT_CAR_MAP[ index ] , 
                    carData = pdata.car_type_list[ carId ],
                    priceData = pdata.price_list[ carId ],
                    pd = {};

                $.each( pdata.fp_price_list || {} , function( airnum, val){
                    pd = val[ carId] || {};
                    return false;
                });

                //处理接送站的奢华车型的价格
                if((productId == 7 || productId == 8) && carId == 4){
                    priceData.train_fee = pdata.price_list[ carId ].fee;
                }

                priceData = $.extend( {}, priceData, pd);

                
                $card.find( "._name" ).html( carData.name );
                $card.find( "._detail" ).html( CAR_DETAIL[ carId ] );
                $card.find( "#flag").removeClass().addClass( PRODUCT_FLAG_CLASS[ productId ] );
                $card.find( "._img" ).attr( "src", CAR_IMGS[ carId ]);
                $card.find( "._desc" ).html( pdata.product_type_name_display + " " +carData.name +
                        ( carData.brand_list != null ? 
                            "：" + (  carData.brand_list[ 0 ]) + " 等车型" : 
                            "" )
                        );
                $card.find( "._personCount" ).html( carData.person_number );
                $card.find( "._price" ).html( productId == 1 ? 
                    // 时租
                    (   //修改为半小时起租
                        ( priceData.fee_per_hour / 200 ) + "元/半小时+" + 
                        ( priceData.fee_per_kilometer / 100 ) + "元/公里"
                    ) 
                    : 
                    // 接送机
                    (   
                        (carId == 4 ? pdata.product_type_name_display.substring(0,2)+"："+( priceData.fee / 100 ) + "元，"+pdata.product_type_name_display.substring(0,1)+pdata.product_type_name_display.substr(3)+"："+( priceData.train_fee / 100 ) : ( priceData.fee / 100 ))  + "元，包" +
                        ( priceData.time_length / 3600 ) + "小时及" + 
                        ( priceData.distance / 1000 ) + "公里路程"  
                    )
                );

                callBackFn();
            });
        }

        function showHideProduct( t ){
            Do( "c.common", function(){

                if( t == "show" && $carListLayer.is( ":visible" )) return;
                YCUtils.moveToScreenCenter( $carListLayer )[ t ]();
                showMaskBackground( t == "show" ? { autoHideSelect : false} : false );
            });
        }

        function showMaskBackground( conf){
            var maskId = 'ycutils_maskbackground_ajs_common';
            if (conf == false) {
                $('#' + maskId).hide();
    
                // 显示所有的select元素
                invisibleSelect( false);
                return;
            }
    
            conf = $.extend( {
                // 背景色颜色
                backgroundColor: '#000000',
                // 透明度
                alpha: 0.25,
                // style z-index
                zIndex: 5000,
                autoHideSelect: true
            }, conf);
    
            var $dom = $( document);
            var $win = $( window);
            var $maskNode = $('#' + maskId);

            if ($maskNode.length == 0) {
                $maskNode = $('<div></div>').hide().appendTo('body').attr('id', maskId);
                $win.scroll( function(){
                    $maskNode.css( "top", $win.scrollTop() - 200);
                });
            }
    
            // 设置样式
            $maskNode.css({
                position: 'absolute',
                top: ( $win.scrollTop() - 200) + "px",
                left: '0px',
                width: $win.width(),
                height: $win.height() + 400,
                zIndex: conf.zIndex,
                backgroundColor: conf.backgroundColor
            }).css( { opacity : conf.alpha}).show();

            //$maskNode[ 0].style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + ( conf.alpha * 100) + ")";

            if( conf.autoHideSelect ){
                // 隐藏掉所有的select元素
                invisibleSelect( true, false);
            }
        }

        function invisibleSelect( invisible, always){

            invisible = invisible == null ? true : invisible;
            always = always == null ? false : always;
            var isIE6 = $.browser.msie && $.browser.version == '6.0';

            if( invisible && ( always || ( !always && isIE6) )){

                // 隐藏掉所有的select元素
                $('select').each(function() {
                    var $this = $(this);
                    var visibility = $this.css('visibility');
                    if( visibility == 'hidden'){
                        return false;
                    }
                    $this.data('style-visibility', visibility);
                    $this.css('visibility', 'hidden');
                });
            }else{
                // 显示所有的select元素
                $('select').each(function() {
                    var $this = $(this);
                    var visibility = $this.data('style-visibility');
                    if( visibility != null)
                        $this.css('visibility', visibility);
                });
            }
        }

        function calcCarIndex( index ){
            if( index == 0 ) CURRENT_CAR_INDEX = 0;
            else CURRENT_CAR_INDEX += index > 0 ? 1 : -1;

            CURRENT_CAR_INDEX = Math.max( 0, Math.min( CURRENT_CAR_INDEX, CURRENT_CAR_MAP.length ) );
        }

        // 处理车辆卡片的显示逻辑  0为显示第一个，-1和1为显示上一个或下一个
        function showCard( index ){
            var $card = $( "#carCard").clone().removeAttr( "id" ),
                _city = null,
                _productId = window.CURRENT_PRODUCTID;

            citySelectPro( "record" );
            initCitySelect( _productId );
            citySelectPro( "recover" );
            _city = $citySelector.val();
            calcCarIndex( index );
            if( index == 0 ){
                CURRENT_CAR_MAP = [];
                $carCardContainer.empty();
            }
            checkArrow();

            fillProduct( $card, _city, CURRENT_CAR_INDEX, _productId, function(){
                $card.css( "z-index", 9 );
                $carCardContainer.append( $card );
                checkArrow();
                showHideProduct( "show" );

                if( index != 0 ){
                    $card.css( {
                        "left" : index < 0 ? "-695px" : "695px" ,
                        "z-index" : 11
                    }).prev().css( "z-index" , 10 );

                    $card.animate( {
                        "left" : 6
                    }, 
                    "fast" ,  
                    function(){
                        $card.prev().remove();
                    });
                }
            });
        }

        $carListLayer.find( "._close").click( function(){
            showHideProduct( "hide" );
        });

        function checkArrow(){
            $arrowLeft.css( "visibility" , CURRENT_CAR_INDEX == 0 ? "hidden" : "visible");
            $arrowRight.css( "visibility" , CURRENT_CAR_INDEX >= CURRENT_CAR_MAP.length - 1 ? "hidden" : "visible");
        }

        $arrowRight.click( function(){
            showCard( 1 );
        });
        $arrowLeft.click( function(){
            showCard( -1 );
        });

        $citySelector.change( function(){
            showCard( 0 );
        });

        Do( "c.common", function(){
            $( "._show").click( function(){
                var $this = $( this ),
                    _product = $this.attr( "product" ),
                    _city = $citySelector.val(); 

                window.CURRENT_PRODUCTID = _product;
                getProductInfo( _city, function( city ){
                    city ? !function(){
                        showCard( 0 );
                    }() : null;
                });

            });
        });


        // 图片切换
        $( "._changeImg").each( function(){
            var $this = $( this ),
                _src = $this.attr( "src" ),
                _hoverSrc = $this.attr( "hs" ),
                _hBind = $( "#" + $this.attr( "hbind" ));

            $this.add( _hBind ).hover( function(){
                $this.attr( "src" , _hoverSrc );
            }, function(){
                $this.attr( "src" , _src );
            });
        });

        
    });
</SCRIPT> 

<SCRIPT TYPE="text/javascript">
function Movement( config){
    this.$marg = $( config.marg);
    this.$leftArrow = $( config.leftArrow);
    this.$rightArrow = $( config.rightArrow);
    this.$cirBtn = $( config.cirBtn);
    this.timeout = config.timeout || 2000;

    this.onMarquee = config.onMarquee;
    this.onMouseEnter = config.onMouseEnter;
    this.onMouseLeave = config.onMouseLeave;
    this.onStart = config.onStart;
    this.onStop = config.onStop;

    this.autoStart = config.autoStart != undefined ? config.autoStart : true;
    this.stopMargAnimate = false;
    this.timeouter = null;
    var _self = this;

    function trigger( name, args){
        if( !$.isArray( args)){
            args = [ args];
        }

        if( typeof _self[ name] == 'function'){
            _self[ name].apply( _self, args);
        }
    }

    this.margLoop = function( doLoop, dir){

        dir = dir || "next";

        if( doLoop == "start"){

            _self.margLoop( "stop");

            _self.stopMargAnimate = false;
            _self.timeouter = setTimeout( function(){
                _self.margLoop();
            }, _self.timeout);
            return;

        }else if( doLoop == "stop"){
            _self.stopMargAnimate = true;
            clearTimeout( _self.timeouter);
        }

        if( _self.stopMargAnimate)
            return;

        trigger("onMarquee", { 
            marg: _self.$marg, 
            dir: dir, 
            easing: _self.easing,
            finishFn: function(){
                _self.margLoop( "start", dir);
            }
        });
    }

    if( this.autoStart)
        this.margLoop( "start");

    this.start = function(){
        _self.margLoop( "start");
        trigger( "onStart");
    };
    this.stop = function(){
        _self.margLoop( "stop");
        trigger( "onStop");
    };

    _self.$marg.add( _self.$leftArrow).add( _self.$rightArrow).add( _self.$cirBtn).hover( function(){
        _self.margLoop( "stop");
        trigger( "onMouseEnter");
    }, function(){
        if(!_self.autoStart) return;
        _self.margLoop( "start");
        trigger( "onMouseLeave");
    });

    _self.$leftArrow.click( function(){
        trigger( "onMarquee", { 
            marg: _self.$marg, 
            dir: "prev", 
            easing: _self.easing,
            finishFn: function(){}
        });
    });
    _self.$rightArrow.click( function(){
        trigger( "onMarquee", { 
            marg: _self.$marg, 
            dir: "next", 
            easing: _self.easing,
            finishFn: function(){}
        });
    });
    _self.$cirBtn.click( function(){
        trigger( "onMarquee", { 
            marg: _self.$marg, 
            dir: $(this).index(), 
            easing: _self.easing,
            finishFn: function(){}
        });
    });
}

Movement.prototype.easing = {
    hor_animate: function( $list, dir, onFinish, aniConfig){
        aniConfig = aniConfig || {};
        var width = $list.children( ":first").outerWidth( true);
        
        if( dir == "prev"){

            var $moveNode = $list.children( ":last"),
                //width = $moveNode.outerWidth( true),
                $clone = $moveNode.clone().prependTo( $list),
                $aniNode = $clone;

            $aniNode.css( "marginLeft", -width);

            $aniNode.animate( { marginLeft: 0}, aniConfig.speed || "fast", aniConfig.easing || "swing", function(){
                $moveNode.prependTo( $list );
                $clone.remove();
                onFinish();
            })

        }else if( dir == "next"){

            var $moveNode = $list.children( ":first"),
                //width = $moveNode.outerWidth( true),
                $clone = $moveNode.clone().appendTo( $list),
                $aniNode = $moveNode;

            $aniNode.animate( { marginLeft: -width}, aniConfig.speed || "fast", aniConfig.easing || "swing", function(){
                $moveNode.css( "marginLeft", 0).appendTo( $list);
                $clone.remove();
                //$list.css( "marginLeft", 0);
                onFinish();
            })
        }else{
            var $moveNode = $list.children( ":first"),
                $prevAll = $list.children('[data-ind='+dir+']').prevAll(),
                //width = $moveNode.outerWidth( true),
                allwidth = $prevAll.length * width,
                $clone = $prevAll.clone(),
                $aniNode = $moveNode;
            $clone.each(function(i){
                $clone.eq($clone.length - i - 1).appendTo($list)
            });  
            $aniNode.animate( { marginLeft: -allwidth}, aniConfig.speed || "fast", aniConfig.easing || "swing", function(){
                //$moveNode.css( "marginLeft", 0).appendTo( $list);
                $prevAll.remove();
                //$list.css( "marginLeft", 0);
                onFinish();
            })
        }
    },
    ver_animate: function( $list, dir, onFinish, aniConfig){
        aniConfig = aniConfig || {};
        var height = $list.children( ":first").outerHeight( true);

        if( dir == "prev"){

            var $moveNode = $list.children( ":last"),
                //height = $moveNode.outerHeight( true),
                $clone = $moveNode.clone().prependTo( $list),
                $aniNode = $clone;

            $aniNode.css( "marginTop", -height);

            $aniNode.animate( { marginTop: 0}, aniConfig.speed || "fast", aniConfig.easing || "swing", function(){
                $moveNode.prependTo( $list );
                $clone.remove();
                onFinish();
            })

        }else if( dir == "next"){

            var $moveNode = $list.children( ":first"),
                //height = $moveNode.outerHeight( true),
                $clone = $moveNode.clone().appendTo( $list),
                $aniNode = $moveNode;

            $aniNode.animate( { marginTop: -height}, aniConfig.speed || "fast", aniConfig.easing || "swing", function(){
                $moveNode.css( "marginTop", 0).appendTo( $list);
                $clone.remove();
                //$aniNode.css( "marginTop", 0);
                onFinish();
            })
        }else{
            var $moveNode = $list.children( ":first"),
                $prevAll = $list.children('[data-ind='+dir+']').prevAll(),
                allheight = $prevAll.length * height,
                $clone = $prevAll.clone(),
                $aniNode = $moveNode;
            $clone.each(function(i){
                $clone.eq($clone.length - i - 1).appendTo($list)
            });  
            $aniNode.animate( { marginTop: -allheight}, aniConfig.speed || "fast", aniConfig.easing || "swing", function(){
                //$moveNode.css( "marginLeft", 0).appendTo( $list);
                $prevAll.remove();
                //$list.css( "marginLeft", 0);
                onFinish();
            })
        }
    }
};

/*
    仿百度贴吧首页的数字轮换
 */
function NUMBER_CYCLE( number, $elems){

        $elems = $( $elems);
        var numberChars = ( "" + number).split( ''),
            numLen = numberChars.length,
            elemLen = $elems.length;

        $.each( $elems, function( index, $item){
            $item = $( $item);

            // init 0 - 9 numbers
            var $node = $item.children().eq( 0);

            if( $node.length > 0){
                $node.html( "-");

                for( var i = 0; i < 10; i ++){
                    $item.append( $node.clone().html( i));
                }
            }

            // animate
            if( elemLen - numLen <= index){
                var num = parseInt( numberChars[ index - ( elemLen - numLen) ], 10) + 1;

                $node.animate( { 
                    marginTop: -( $node.height() *  num )
                }, 1500, "swing");
            }
        });
    }

</SCRIPT>



</body>
</html>
